
	ORG		0
	USE16
	CPU		8086

FIXCS		equ		2eh

segment .liotable start=0x0000

start		dw	0x11, 0x0000
			dw	0xa0, lio_a0
			dw	0xa1, lio_a1
			dw	0xa2, lio_a2
			dw	0xa3, lio_a3
			dw	0xa4, lio_a4
			dw	0xa5, lio_a5
			dw	0xa6, lio_a6
			dw	0xa7, lio_a7
			dw	0xa8, lio_a8
			dw	0xa9, lio_a9
			dw	0xaa, lio_aa
			dw	0xab, lio_ab
			dw	0xac, lio_ac
			dw	0xad, gput2
			dw	0xae, lio_ae
			dw	0xaf, lio_af
			dw	0xce, lio_ce

segment .liocall start=0x0050

				align	4
lio_a0:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a1:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a2:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a3:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a4:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a5:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a6:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a7:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a8:			nop
				sti
				jmp		short lio_wait

				align	4
lio_a9:			nop
				sti
				jmp		short lio_wait

				align	4
lio_aa:			nop
				sti
				jmp		short lio_wait

				align	4
lio_ab:			nop
				sti
				jmp		short lio_wait

				align	4
lio_ac:			nop
				sti
				jmp		short lio_wait

				align	4
lio_ad:			nop
				sti
				jmp		short lio_wait

				align	4
lio_ae:			nop
				sti
				jmp		short lio_wait

				align	4
lio_af:			nop
				sti
				jmp		short lio_wait

				align	4
lio_ce:			nop
				sti
				jmp		short lio_wait

				align	4
lio_wait:		nop
				iret

segment .liomain start=0x00a0

liofont		db	0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00
			db	0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00
			db	0x00, 0x60, 0xda, 0x0c, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x30, 0x48, 0x48, 0x30, 0x00
			db	0x7c, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40
			db	0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
			db	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x7c, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30
			db	0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x10, 0x10, 0x3c, 0x60, 0x24, 0x28, 0x1c
			db	0x32, 0x52, 0x42, 0x40, 0x62, 0x3c, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x78, 0x16
			db	0x1c, 0x2c, 0x4a, 0x5a, 0x52, 0x30, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x22
			db	0x22, 0x22, 0x42, 0x42, 0x40, 0x28, 0x10, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x04, 0x00
			db	0x1c, 0x62, 0x02, 0x02, 0x02, 0x04, 0x08, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x1e
			db	0x22, 0x42, 0x04, 0x08, 0x08, 0x1a, 0x24, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x1c, 0x6a
			db	0x08, 0x1c, 0x2a, 0x2a, 0x2a, 0x2a, 0x10, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x2e
			db	0x32, 0x66, 0x20, 0x10, 0x10, 0x10, 0x08, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x5c
			db	0x6a, 0x6a, 0x4a, 0x0a, 0x0c, 0x08, 0x08, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x08
			db	0x08, 0x3c, 0x4c, 0x4a, 0x4a, 0x4a, 0x30, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x62
			db	0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x18, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x20, 0x78, 0x2e, 0x20, 0x1c, 0x36
			db	0x52, 0x52, 0x4a, 0x5a, 0x32, 0x02, 0x00, 0x00
			db	0x00, 0x00, 0x20, 0x24, 0x24, 0x42, 0x42, 0x42
			db	0x42, 0x40, 0x40, 0x40, 0x40, 0x28, 0x10, 0x00
			db	0x00, 0x00, 0x38, 0x04, 0x00, 0x00, 0x3c, 0x42
			db	0x02, 0x02, 0x02, 0x02, 0x04, 0x0c, 0x08, 0x00
			db	0x00, 0x00, 0x10, 0x08, 0x1c, 0x26, 0x42, 0x02
			db	0x04, 0x04, 0x08, 0x08, 0x10, 0x1a, 0x24, 0x00
			db	0x00, 0x10, 0x16, 0x1c, 0x6a, 0x0a, 0x08, 0x1c
			db	0x2a, 0x2a, 0x4a, 0x4a, 0x6a, 0x32, 0x00, 0x00
			db	0x00, 0x00, 0x02, 0x12, 0x3a, 0x54, 0x14, 0x22
			db	0x22, 0x22, 0x22, 0x22, 0x04, 0x04, 0x00, 0x00
			db	0x00, 0x10, 0x10, 0x3e, 0x68, 0x08, 0x06, 0x7c
			db	0x04, 0x1c, 0x20, 0x40, 0x42, 0x26, 0x18, 0x00
			db	0x00, 0x00, 0x06, 0x08, 0x10, 0x20, 0x20, 0x40
			db	0x40, 0x40, 0x60, 0x30, 0x18, 0x0e, 0x00, 0x00
			db	0x00, 0x00, 0x04, 0x24, 0x24, 0x4e, 0x54, 0x44
			db	0x44, 0x44, 0x44, 0x44, 0x4c, 0x28, 0x00, 0x00
			db	0x00, 0x00, 0x3c, 0x62, 0x02, 0x02, 0x00, 0x00
			db	0x00, 0x20, 0x40, 0x40, 0x62, 0x3e, 0x00, 0x00
			db	0x00, 0x10, 0x10, 0x10, 0x3e, 0x48, 0x08, 0x18
			db	0x20, 0x40, 0x40, 0x40, 0x62, 0x3e, 0x00, 0x00
			db	0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40
			db	0x40, 0x40, 0x40, 0x40, 0x40, 0x64, 0x38, 0x00
			db	0x00, 0x10, 0x10, 0x7e, 0x48, 0x08, 0x3c, 0x2c
			db	0x4a, 0x4a, 0x52, 0x32, 0x04, 0x04, 0x08, 0x00
			db	0x00, 0x00, 0x00, 0x24, 0x24, 0x7e, 0x25, 0x24
			db	0x44, 0x48, 0x40, 0x40, 0x20, 0x32, 0x0c, 0x00
			db	0x00, 0x00, 0x38, 0x44, 0x08, 0x30, 0x22, 0x4c
			db	0x30, 0x20, 0x40, 0x40, 0x42, 0x26, 0x18, 0x00
			db	0x00, 0x10, 0x10, 0x78, 0x20, 0x2c, 0x22, 0x22
			db	0x40, 0x40, 0x40, 0x40, 0x60, 0x72, 0x5c, 0x00
			db	0x00, 0x10, 0x10, 0x10, 0x7e, 0x20, 0x20, 0x2c
			db	0x32, 0x62, 0x02, 0x02, 0x02, 0x0c, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x3c, 0x62, 0x42, 0x02, 0x02
			db	0x02, 0x02, 0x02, 0x02, 0x04, 0x0c, 0x10, 0x00
			db	0x00, 0x00, 0x00, 0x7e, 0x0c, 0x08, 0x10, 0x20
			db	0x40, 0x40, 0x40, 0x60, 0x22, 0x1e, 0x00, 0x00
			db	0x00, 0x00, 0x10, 0x10, 0x1c, 0x12, 0x20, 0x40
			db	0x40, 0x40, 0x40, 0x40, 0x22, 0x3e, 0x00, 0x00
			db	0x00, 0x00, 0x10, 0x10, 0x7c, 0x22, 0x22, 0x40
			db	0x44, 0x5c, 0x14, 0x24, 0x24, 0x1c, 0x0a, 0x00
			db	0x00, 0x00, 0x0e, 0x1a, 0x40, 0x40, 0x40, 0x40
			db	0x40, 0x40, 0x40, 0x50, 0x50, 0x32, 0x0c, 0x00
			db	0x00, 0x00, 0x08, 0x08, 0x1c, 0x2c, 0x6a, 0x6a
			db	0x2a, 0x72, 0x56, 0x56, 0x2a, 0x0a, 0x04, 0x00
			db	0x00, 0x00, 0x20, 0x20, 0x24, 0x6a, 0x32, 0x22
			db	0x24, 0x24, 0x6c, 0x6a, 0x2a, 0x26, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x1c, 0x34, 0x2a, 0x4a, 0x4a
			db	0x4a, 0x4a, 0x4a, 0x4a, 0x32, 0x04, 0x00, 0x00
			db	0x00, 0x08, 0x08, 0x04, 0x5e, 0x64, 0x44, 0x4c
			db	0x54, 0x56, 0x66, 0x64, 0x64, 0x1c, 0x00, 0x00
			db	0x00, 0x00, 0x60, 0x30, 0x10, 0x24, 0x26, 0x26
			db	0x44, 0x44, 0x44, 0x44, 0x2c, 0x38, 0x10, 0x00
			db	0x00, 0x00, 0x3c, 0x04, 0x04, 0x08, 0x08, 0x10
			db	0x12, 0x4a, 0x4a, 0x4a, 0x0a, 0x30, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x18, 0x34, 0x24, 0x44
			db	0x42, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00
			db	0x00, 0x04, 0x1e, 0x44, 0x44, 0x44, 0x44, 0x5e
			db	0x44, 0x4c, 0x54, 0x56, 0x56, 0x18, 0x00, 0x00
			db	0x00, 0x10, 0x10, 0x3e, 0x48, 0x08, 0x0e, 0x3c
			db	0x48, 0x18, 0x2c, 0x4a, 0x4a, 0x2a, 0x30, 0x00
			db	0x00, 0x30, 0x10, 0x08, 0x08, 0x0a, 0x3a, 0x4e
			db	0x4e, 0x4a, 0x4b, 0x52, 0x24, 0x04, 0x04, 0x00
			db	0x00, 0x04, 0x04, 0x7e, 0x04, 0x08, 0x3a, 0x2a
			db	0x48, 0x50, 0x50, 0x72, 0x2a, 0x0e, 0x04, 0x00
			db	0x00, 0x00, 0x08, 0x48, 0x5c, 0x2a, 0x2a, 0x6a
			db	0x6a, 0x4a, 0x52, 0x52, 0x72, 0x04, 0x00, 0x00
			db	0x00, 0x00, 0x08, 0x10, 0x7c, 0x12, 0x10, 0x10
			db	0x7c, 0x24, 0x20, 0x20, 0x22, 0x26, 0x18, 0x00
			db	0x00, 0x00, 0x00, 0x44, 0x44, 0x5c, 0x22, 0x62
			db	0x22, 0x22, 0x12, 0x10, 0x10, 0x08, 0x08, 0x00
			db	0x00, 0x00, 0x08, 0x5c, 0x6a, 0x6a, 0x4a, 0x4a
			db	0x4a, 0x4a, 0x4a, 0x0c, 0x08, 0x08, 0x00, 0x00
			db	0x00, 0x08, 0x08, 0x0e, 0x08, 0x08, 0x08, 0x3c
			db	0x6c, 0x4a, 0x4a, 0x4a, 0x48, 0x30, 0x00, 0x00
			db	0x00, 0x00, 0x18, 0x04, 0x20, 0x20, 0x40, 0x44
			db	0x5e, 0x62, 0x02, 0x02, 0x02, 0x02, 0x04, 0x00
			db	0x00, 0x00, 0x00, 0x22, 0x42, 0x42, 0x42, 0x42
			db	0x42, 0x42, 0x52, 0x22, 0x06, 0x04, 0x00, 0x00
			db	0x00, 0x00, 0x3c, 0x4c, 0x08, 0x10, 0x2c, 0x36
			db	0x42, 0x42, 0x1a, 0x26, 0x22, 0x24, 0x18, 0x00
			db	0x00, 0x00, 0x20, 0x20, 0x26, 0x6a, 0x72, 0x32
			db	0x22, 0x24, 0x64, 0x64, 0x24, 0x22, 0x00, 0x00
			db	0x00, 0x00, 0x3c, 0x44, 0x08, 0x10, 0x3c, 0x22
			db	0x42, 0x42, 0x02, 0x02, 0x02, 0x04, 0x0c, 0x00
			db	0x00, 0x00, 0x10, 0x10, 0x10, 0x7c, 0x32, 0x12
			db	0x32, 0x22, 0x62, 0x62, 0x22, 0x24, 0x00, 0x00
			db	0x00, 0x00, 0x10, 0x10, 0x30, 0x20, 0x20, 0x28
			db	0x34, 0x34, 0x24, 0x24, 0x24, 0x46, 0x44, 0x00
			db	0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
			db	0x10, 0x28, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00
			db	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

gput2:		jmp		lio_ad

	ends

